API: widget: Remove GtkWidget::composited-changed signal
authorBenjamin Otte <otte@redhat.com>
Sat, 29 Oct 2016 01:25:06 +0000 (03:25 +0200)
committerBenjamin Otte <otte@redhat.com>
Sat, 29 Oct 2016 02:49:47 +0000 (04:49 +0200)
Nobody uses it.

If you need the functionality, listen to display changes on
your widget and then connect to the display's notify::composited.

gtk/gtkwidget.c
gtk/gtkwidget.h
gtk/gtkwidgetprivate.h
gtk/gtkwindow.c
tests/testgtk.c

index 430c0f9768d0ef9fffd4b30a980f8794a8e25627..6a19227b7b877fa684c7058f090e3a543f001624 100644 (file)
@@ -551,7 +551,6 @@ enum {
   ACCEL_CLOSURES_CHANGED,
   SCREEN_CHANGED,
   CAN_ACTIVATE_ACCEL,
-  COMPOSITED_CHANGED,
   QUERY_TOOLTIP,
   DRAG_FAILED,
   STYLE_UPDATED,
@@ -2109,23 +2108,6 @@ gtk_widget_class_init (GtkWidgetClass *klass)
   g_signal_set_va_marshaller (widget_signals[MOTION_NOTIFY_EVENT], G_TYPE_FROM_CLASS (klass),
                               _gtk_marshal_BOOLEAN__BOXEDv);
 
-  /**
-   * GtkWidget::composited-changed:
-   * @widget: the object on which the signal is emitted
-   *
-   * The ::composited-changed signal is emitted when the composited
-   * status of @widgets screen changes.
-   * See gdk_screen_is_composited().
-   */
-  widget_signals[COMPOSITED_CHANGED] =
-    g_signal_new (I_("composited-changed"),
-                 G_TYPE_FROM_CLASS (klass),
-                 G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
-                 G_STRUCT_OFFSET (GtkWidgetClass, composited_changed),
-                 NULL, NULL,
-                 NULL,
-                 G_TYPE_NONE, 0);
-
   /**
    * GtkWidget::delete-event:
    * @widget: the object which received the signal
@@ -8886,26 +8868,6 @@ gtk_widget_is_composited (GtkWidget *widget)
   return gdk_screen_is_composited (screen);
 }
 
-static void
-propagate_composited_changed (GtkWidget *widget,
-                             gpointer dummy)
-{
-  if (GTK_IS_CONTAINER (widget))
-    {
-      gtk_container_forall (GTK_CONTAINER (widget),
-                           propagate_composited_changed,
-                           NULL);
-    }
-
-  g_signal_emit (widget, widget_signals[COMPOSITED_CHANGED], 0);
-}
-
-void
-_gtk_widget_propagate_composited_changed (GtkWidget *widget)
-{
-  propagate_composited_changed (widget, NULL);
-}
-
 /**
  * _gtk_widget_propagate_screen_changed:
  * @widget: a #GtkWidget
index 8b93b858661b4ebfa172100c3a7b6583fbf9c860..20464576eb9a4c930535bc55d97f46701cf68c7f 100644 (file)
@@ -289,8 +289,6 @@ struct _GtkWidget
  * @can_activate_accel: Signal allows applications and derived widgets
  *   to override the default GtkWidget handling for determining whether
  *   an accelerator can be activated.
- * @composited_changed: Signal emitted when the composited status of
- *   widgets screen changes. See gdk_screen_is_composited().
  * @query_tooltip: Signal emitted when “has-tooltip” is %TRUE and the
  *   hover timeout has expired with the cursor hovering “above”
  *   widget; or emitted when widget got focus in keyboard mode.
@@ -525,8 +523,6 @@ struct _GtkWidgetClass
                                        guint      signal_id);
 
 
-  void         (* composited_changed) (GtkWidget *widget);
-
   gboolean     (* query_tooltip)      (GtkWidget  *widget,
                                       gint        x,
                                       gint        y,
index b4b28fc9f0328a8976c3f8b419ee4a68945e6edb..fe7e05aadadc9e90aa0b5a208d1f158fdcf6582e 100644 (file)
@@ -213,7 +213,6 @@ void              _gtk_widget_propagate_hierarchy_changed  (GtkWidget *widget,
                                                             GtkWidget *previous_toplevel);
 void              _gtk_widget_propagate_screen_changed     (GtkWidget *widget,
                                                             GdkScreen *previous_screen);
-void              _gtk_widget_propagate_composited_changed (GtkWidget *widget);
 
 void              _gtk_widget_set_device_window            (GtkWidget *widget,
                                                             GdkDevice *device,
index 81435f515b04a04e9b65d91e75eec0b3e2a2385c..18f74cc26500ba490076f57144913d0b92d183b6 100644 (file)
@@ -506,8 +506,6 @@ static void     get_shadow_width                      (GtkWindow    *window,
 
 static GtkKeyHash *gtk_window_get_key_hash        (GtkWindow   *window);
 static void        gtk_window_free_key_hash       (GtkWindow   *window);
-static void       gtk_window_on_composited_changed (GdkScreen *screen,
-                                                    GtkWindow *window);
 #ifdef GDK_WINDOWING_X11
 static void        gtk_window_on_theme_variant_changed (GtkSettings *settings,
                                                         GParamSpec  *pspec,
@@ -1694,10 +1692,6 @@ gtk_window_init (GtkWindow *window)
   toplevel_list = g_slist_prepend (toplevel_list, window);
   gtk_window_update_debugging ();
 
-  if (priv->screen)
-    g_signal_connect_object (priv->screen, "composited-changed",
-                             G_CALLBACK (gtk_window_on_composited_changed), window, 0);
-
 #ifdef GDK_WINDOWING_X11
   g_signal_connect_object (gtk_settings_get_for_screen (priv->screen),
                            "notify::gtk-application-prefer-dark-theme",
@@ -5723,16 +5717,14 @@ gtk_window_finalize (GObject *object)
       priv->delete_event_handler = 0;
     }
 
+#ifdef GDK_WINDOWING_X11
   if (priv->screen)
     {
-      g_signal_handlers_disconnect_by_func (priv->screen,
-                                            gtk_window_on_composited_changed, window);
-#ifdef GDK_WINDOWING_X11
       g_signal_handlers_disconnect_by_func (gtk_settings_get_for_screen (priv->screen),
                                             gtk_window_on_theme_variant_changed,
                                             window);
-#endif
     }
+#endif
 
   g_free (priv->startup_id);
 
@@ -10213,25 +10205,18 @@ gtk_window_set_screen (GtkWindow *window,
   priv->screen = screen;
   if (screen != previous_screen)
     {
+#ifdef GDK_WINDOWING_X11
       if (previous_screen)
         {
-          g_signal_handlers_disconnect_by_func (previous_screen,
-                                                gtk_window_on_composited_changed, window);
-#ifdef GDK_WINDOWING_X11
           g_signal_handlers_disconnect_by_func (gtk_settings_get_for_screen (previous_screen),
                                                 gtk_window_on_theme_variant_changed, window);
-#endif
         }
-      g_signal_connect (screen, "composited-changed",
-                        G_CALLBACK (gtk_window_on_composited_changed), window);
-#ifdef GDK_WINDOWING_X11
       g_signal_connect (gtk_settings_get_for_screen (screen),
                         "notify::gtk-application-prefer-dark-theme",
                         G_CALLBACK (gtk_window_on_theme_variant_changed), window);
 #endif
 
       _gtk_widget_propagate_screen_changed (widget, previous_screen);
-      _gtk_widget_propagate_composited_changed (widget);
     }
   g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_SCREEN]);
 
@@ -10271,16 +10256,6 @@ gtk_window_on_theme_variant_changed (GtkSettings *settings,
 }
 #endif
 
-static void
-gtk_window_on_composited_changed (GdkScreen *screen,
-                                 GtkWindow *window)
-{
-  GtkWidget *widget = GTK_WIDGET (window);
-
-  gtk_widget_queue_draw (widget);
-  _gtk_widget_propagate_composited_changed (widget);
-}
-
 static GdkScreen *
 gtk_window_check_screen (GtkWindow *window)
 {
index fadb05fe7f8baccf1798fe9d000c93d64f985a33..85c14d33fcd096243562e84d3bec4ccb347538c8 100644 (file)
@@ -222,10 +222,10 @@ build_alpha_widgets (void)
 }
 
 static void
-on_composited_changed (GtkWidget *window,
-                     GtkLabel *label)
+on_composited_changed (GdkScreen *screen,
+                      GtkLabel  *label)
 {
-  gboolean is_composited = gtk_widget_is_composited (window);
+  gboolean is_composited = gdk_screen_is_composited (screen);
 
   if (is_composited)
     gtk_label_set_text (label, "Composited");
@@ -243,6 +243,7 @@ create_alpha_window (GtkWidget *widget)
       GtkWidget *content_area;
       GtkWidget *vbox;
       GtkWidget *label;
+      GdkScreen *screen;
       
       window = gtk_dialog_new_with_buttons ("Alpha Window",
                                            GTK_WINDOW (gtk_widget_get_toplevel (widget)), 0,
@@ -264,8 +265,9 @@ create_alpha_window (GtkWidget *widget)
       
       label = gtk_label_new (NULL);
       gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE);
-      on_composited_changed (window, GTK_LABEL (label));
-      g_signal_connect (window, "composited_changed", G_CALLBACK (on_composited_changed), label);
+      screen = gtk_widget_get_screen (window);
+      on_composited_changed (screen, GTK_LABEL (label));
+      g_signal_connect (screen, "composited_changed", G_CALLBACK (on_composited_changed), label);
 
       gtk_box_pack_start (GTK_BOX (vbox), build_alpha_widgets (), TRUE, TRUE);